package cn.yougou.mapper;


import cn.yougou.dto.Query;
import cn.yougou.pojo.YgUser;
import cn.yougou.vo.YgPersonalVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * (YgUser)表数据库访问层
 *
 * @author makejava
 * @since 2020-12-04 14:58:20
 */
public interface YgUserMapper {

    /**
     * 根据id集合查询用户信息
     * @param
     * @return
     */
    YgUser queryByListId(@Param("userid") Integer userid);

    /**
     * 用户数量
     * @return 数据量
     */
    int uCount();

    /**
     * 通过idList集合查询数据
     * @param
     * @return
     */
    YgUser queryById(Integer id);

    /**
     * 查询指定行数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<YgUser> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param ygUser 实例对象
     * @return 对象列表
     */
    List<YgUser> queryAll(YgUser ygUser);

    /**
     * 新增数据
     *
     * @param ygUser 实例对象
     * @return 影响行数
     */
    int insert(YgUser ygUser);

    /**
     * 修改数据
     *
     * @param ygUser 实例对象
     * @return 影响行数
     */
    int update(YgUser ygUser);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Integer id);
    /**
     * 根据查询条件查询信息总数
     * */
    int selCount(Query query);
    /**
     * 根据条件查询所有 有分页
     * */
    List<YgUser> conditionSelAll(Query query);

    //登录
     YgUser login(YgUser ygUser);

    //查询个人信息
    List<YgPersonalVo> selPersonal(YgPersonalVo ygPersonalVo);

     //注册
    Integer add (String phone, String password);

    //通过主键增加金钱
    int chargeMoney(YgUser ygUser);

    //通过主键扣除余额
    int reduceBalance(YgUser ygUser);



}